/**********************************************************************************************/
// dgt_OperElement.h
// Interface of operation element
// 
// Copyright Diamant Group 2007
/**********************************************************************************************/
#ifndef _DGT_OPERELEMENT_H_
#define _DGT_OPERELEMENT_H_

#include "dgtKernel.h"
#include "dgt_SmartMacros.h"
#include "dgt_Element.h"

SMART_CLASS( dgt_OperElement );

/**********************************************************************************************/
interface dgt_OperElement: public dgt_Element
{
							dgt_OperElement( void )			{};

virtual						~dgt_OperElement( void )		{};

		// Number of bits of operand
virtual unsigned long		get_BitCountOperand( void ) = 0;
		// Number of bits of result
virtual unsigned long		get_BitCountResult( void ) = 0;
		// Number of operands
virtual unsigned long		get_OperandCount( void ) = 0;
		// Number of operations
virtual unsigned long		get_OpCount( void ) = 0;
		// Operations names
virtual wxArrayString		get_OpNames( void ) = 0;
		// Mnemonic names
virtual wxArrayString		get_MnemNames( void ) = 0;

};

#endif	// _DGT_OPERELEMENT_H_

